package com.sss.hloster01;

import java.util.*;

public class TestDriver01 {//Map集合的应用

	public static void main(String[] args) {
		test01();
	}

	
	
	private static void test03() {
		Map map = new TreeMap();
		// 存入键对值（姓名--年龄）
		map.put("zhangsan", 30);
		map.put("lisi", 20);
		map.put("lisi", 40);
	//map.put(null, 10);
		map.put("wangwu", 18);
		System.out.println("增强型的for循环遍历取出HashMap集合中的Key元素集合进行遍历：");
		// 取出HashMap集合中的Key元素集合
		Set setKeys = map.keySet();
		// 把对map的遍历转变为对keyset集合的遍历，然后使用get 方法获取与key对应的value值
		for (Object key : setKeys) {
			// 通过key取出value值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "---" + val);
		}
		System.out.println("使用迭代器循环遍历取出HashMap集合中的Key元素集合进行遍历：");
		// 获取当前集合对象的迭代器对象
		Iterator it = setKeys.iterator();
		// 迭代器的hasNext方法判定有没有下一个元素对象
		// 迭代器的next方法获取下一个元素对象，并将迭代器位置（指针）向后挪动一偏移量
		while (it.hasNext()) {
			// 取出当前遍历的Key的值
			Object key = it.next();
			// 通过Key取出value的值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "  - " + val);
		}
		System.out.println("增强型的for 循环遍历取出的HashMap集合中的Entry元素集合进行遍历：");
		Set setEntries=map.entrySet();
		//增强型的for循环遍历set(存储了entry键值对的set)
		for(Object objEntry:setEntries) {
			//从键值对中获取key
			Object key=((Map.Entry)objEntry).getKey();
			//从键值对中获取Value的值
		Object val=((Map.Entry)objEntry).getValue();
		//输出信息
		System.out.println(key+"---"+val);
		}
	}
	/**
	 * HashMap的使用
	 */
	private static void test02() {
		Map map = new LinkedHashMap();
		// 存入键对值（姓名--年龄）
		map.put("zhangsan", 30);
		map.put("lisi", 20);
		map.put("lisi", 40);
		map.put(null, 10);
		map.put("wangwu", 18);
		System.out.println("增强型的for循环遍历取出HashMap集合中的Key元素集合进行遍历：");
		// 取出HashMap集合中的Key元素集合
		Set setKeys = map.keySet();
		// 把对map的遍历转变为对keyset集合的遍历，然后使用get 方法获取与key对应的value值
		for (Object key : setKeys) {
			// 通过key取出value值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "---" + val);
		}
		System.out.println("使用迭代器循环遍历取出LinkedHashMap集合中的Key元素集合进行遍历：");
		// 获取当前集合对象的迭代器对象
		Iterator it = setKeys.iterator();
		// 迭代器的hasNext方法判定有没有下一个元素对象
		// 迭代器的next方法获取下一个元素对象，并将迭代器位置（指针）向后挪动一偏移量
		while (it.hasNext()) {
			// 取出当前遍历的Key的值
			Object key = it.next();
			// 通过Key取出value的值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "  - " + val);
		}
		System.out.println("增强型的for 循环遍历取出的LinkedHashMap集合中的Entry元素集合进行遍历：");
		Set setEntries=map.entrySet();
		//增强型的for循环遍历set(存储了entry键值对的set)
		for(Object objEntry:setEntries) {
			//从键值对中获取key
			Object key=((Map.Entry)objEntry).getKey();
			//从键值对中获取Value的值
		Object val=((Map.Entry)objEntry).getValue();
		//输出信息
		System.out.println(key+"---"+val);
		}
	}
	/**
	 * HashMap的使用
	 */
	private static void test01() {
		Map map = new HashMap();
		// 存入键对值（姓名--年龄）
		map.put("zhangsan", 30);
		map.put("lisi", 20);
		map.put("lisi", 40);
		map.put(null, 10);
		map.put("wangwu", 18);
		System.out.println("增强型的for循环遍历取出HashMap集合中的Key元素集合进行遍历：");
		// 取出HashMap集合中的Key元素集合
		Set setKeys = map.keySet();
		// 把对map的遍历转变为对keyset集合的遍历，然后使用get 方法获取与key对应的value值
		for (Object key : setKeys) {
			// 通过key取出value值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "---" + val);
		}
		System.out.println("使用迭代器循环遍历取出HashMap集合中的Key元素集合进行遍历：");
		// 获取当前集合对象的迭代器对象
		Iterator it = setKeys.iterator();
		// 迭代器的hasNext方法判定有没有下一个元素对象
		// 迭代器的next方法获取下一个元素对象，并将迭代器位置（指针）向后挪动一偏移量
		while (it.hasNext()) {
			// 取出当前遍历的Key的值
			Object key = it.next();
			// 通过Key取出value的值
			Object val = map.get(key);
			// 输出信息
			System.out.println(key + "   " + val);
		}
	}
}
